2.11 For ... Next
 
In der For...Next-Schleife läuft eine Variable von einem Startwert zu einem Zielwert. Ist der Endwert erreicht, verlässt das Programm die Schleife und arbeitet die Befehle ab, die nach der For...Next-Schleife stehen. Die For ... Next-Schleife hat folgende Syntax:
For Zähler = Anfangswert To Endwert [Step Schrittweite]
Anweisungen
Next [Zähler]
Dabei ist »Zähler« eine Variable, das heißt ein beliebiger Name. Anfangswert und Endwert sind zwei Zahlen. Ließe man die Anweisung
For HeineGedichte = 1827 To 1844
MessageBox.Show(HeineGedichte.ToString)
Next
ausführen, so würde HeineGedichte nacheinander die Werte 1827, 1828, 1829, 1830, ... 1844 annehmen. Nach dem ersten Betreten der Schleife, also wenn HeineGedichte 1827 ist, werden die folgenden Zeilen abgearbeitet, in unserem Fall ist es nur das Meldungsfenster, bis der Befehl Next auftaucht. Zur besseren Übersicht kann statt Next auch
Next HeineGedichte
stehen. Danach wird die Variable um 1 auf 1828 erhöht und die Schleife beginnt nun von vorne die Befehlszeilen zu durchlaufen und abzuarbeiten, was dazwischen steht.
Angenommen, die Schleife soll nicht in Einerschritten hochzählen, sondern in einer anderen Schrittweise, so kann hinter der Zeile
For i = 1 To 322
ein Step mit einer Zahl folgen. Zum Beispiel:
For i = 1 To 322 Step 3
Sollte der Endwert überschritten werden, so wird die Schleife automatisch verlassen. Auch ein Abwärtszählen ist möglich:
For i = 322 To 1 Step -3
Und sogar ein schrittweises Weiterzählen mit Dezimalzahlen (Achtung: Basic verlangt die amerikanische Dezimalschreibweise!):
For dbl = 322 To 1 Step -2.5
Folgende Varianten existieren bei der For...Next-Schleife.
|
Sie kann gar nicht ausgeführt werden: |
[Anweisungen]
|
oder genau einmal: |
[Anweisungen]
|
oder mehrmals: |
[Anweisungen]
|
oder (theoretisch und leider auch praktisch) sogar unendlich oft: |
[Anweisungen]
Ein frühzeitiges Verlassen der Schleife wäre mit Exit For möglich. Allerdings ist diese Sprungart bei vielen Programmierern verpönt, weil Programme damit schnell unübersichtlich werden.
Es gibt aber noch einen anderen Schleifentyp, die so genannte Bedingungsschleife: Do ... Loop.
|